package br.com.projeto.json;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import br.com.projeto.vo.Concurso;
import br.com.projeto.vo.Loteria;
import br.com.projeto.vo.Numeros;
import br.com.projeto.vo.Sorteio;

public class JsonConverter {

	// TODO: Falta pegar o ganhadores
	public static Loteria converterJogo(JSONObject jsonObject) throws JSONException{
		Loteria loteria = new Loteria();
		loteria.setConcurso(converterConcurso(jsonObject.getJSONObject("concurso")));
		loteria.setNumero(converterNumero(jsonObject.getJSONObject("sorteio")));
		loteria.setSorteio(converterSorteio(jsonObject.getJSONObject("rateio")));
		return loteria;
	}

	private static Sorteio converterSorteio(JSONObject jsonObject) throws JSONException {
		Sorteio sorteio = new Sorteio();
		
		// Retorna os dados da SENA
		JSONObject jsonDadosSena = jsonObject.getJSONObject("sena");
		sorteio.setSenaGanhador(jsonDadosSena.getString("ganhadores"));
		sorteio.setSenaPremio(jsonDadosSena.getString("premio"));

		// Retorna os dados da QUINA
		JSONObject jsonDadosQuina = jsonObject.getJSONObject("quina");
		sorteio.setQuinaGanhador(jsonDadosQuina.getString("ganhadores"));
		sorteio.setQuinaPremio(jsonDadosQuina.getString("premio"));
		
		// Retorna os dados da QUADRA
		JSONObject jsonDadosQuadra = jsonObject.getJSONObject("quadra");
		sorteio.setQuadraGanhador(jsonDadosQuadra.getString("ganhadores"));
		sorteio.setQuadraPremio(jsonDadosQuadra.getString("premio"));
		return sorteio;
	}

	private static Numeros converterNumero(JSONObject jsonObject) throws JSONException {
		Numeros numero = new Numeros();
		// Retorna os numeros sorteados em ordem crescente
		JSONArray jsonArray = jsonObject.getJSONArray("ordem_crescente");
		numero.createList(jsonArray.toString());
		return numero;
	}

	private static Concurso converterConcurso(JSONObject jsonObject) throws JSONException {
		Concurso concurso = new Concurso();
		concurso.setDataSorteio(jsonObject.getString("data"));
		concurso.setNumeroSorteio(jsonObject.getString("numero_sorteio"));
		concurso.setPremioAcumulado(jsonObject.getString("premio_acumulado"));
		concurso.setLocalSorteio(jsonObject.getString("local"));
		concurso.setTotalArrecadado(jsonObject.getString("total_arrecadado"));
		return concurso;
	}
}
